import json
import os

def generate_language_files(input_file_path):
    # 获取输入文件的目录路径
    input_dir = os.path.dirname(input_file_path)
    # 如果输入文件在当前工作目录，使用当前目录
    if not input_dir:
        input_dir = os.getcwd()
    
    try:
        with open(input_file_path, 'r', encoding='utf-8') as f:
            data = json.load(f)
        
        translations_data = data.get('lang', [])
        
        if not translations_data:
            print("警告：输入文件中未找到有效数据")
            return
        
        languages = {
            'CHN': '中文',
            'ENG': '英文',
            'JP': '日文',
            'VIE': '越南文'
        }
        
        # 统计需要跳过的xxx条目数量
        skip_count = sum(1 for item in translations_data if item.get('key') == 'xxx')
        
        for lang_code, lang_name in languages.items():
            # 构建语言文件数据，跳过key为xxx的条目
            lang_data = {
                "lang": lang_code,
                "trans": [
                    {"key": item["key"], "value": item[lang_code]} 
                    for item in translations_data 
                    if item.get("key") != "xxx"
                ]
            }
            
            # 生成输出文件的完整路径（与输入文件同目录）
            output_file = os.path.join(input_dir, f"language_{lang_code}.json")
            
            # 写入文件
            with open(output_file, 'w', encoding='utf-8') as f:
                json.dump(lang_data, f, ensure_ascii=False, indent=4)
            
            print(f"已生成{lang_name}文件：{output_file}")
        
        if skip_count > 0:
            print(f"共跳过 {skip_count} 个key为'xxx'的条目")
    
    except FileNotFoundError:
        print(f"错误：找不到输入文件 '{input_file_path}'")
    except json.JSONDecodeError:
        print(f"错误：输入文件 '{input_file_path}' 不是有效的JSON格式")
    except Exception as e:
        print(f"发生错误：{str(e)}")

if __name__ == "__main__":
    # 输入文件路径（可以是相对路径或绝对路径）
    input_file = "E:\\workspace\\temp\\Trans\\test\\languageTotal.json"
    
    # 转换为绝对路径，确保准确性
    input_file_abs = os.path.abspath(input_file)
    
    if os.path.exists(input_file_abs):
        generate_language_files(input_file_abs)
    else:
        print(f"错误：文件 '{input_file_abs}' 不存在")
    